import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Stack;

/**
 * @author leiyuee
 * @ClassName dataStructure
 * @date 2021/11/2 13:55
 */

public class dataStructure {

    public static void main(String[] args) {
       reversed();
    }






    /**
     * 1:Question.Josephu  约瑟夫问题
     * 设编号为1.2.3.。。。n的人围坐一圈，约定编号为k的人开始报数，数到m的人出列,
     * 他的下一位又从1开始报数，数到m出列，直到所有人出列，求出列编号序列
     *
     * 思路：不带头节点的单循环链表
     */

    //链表反转
    public static void reversed(){
        LinkedList<String> linkedList = new LinkedList<>();

        linkedList.add("1");
        linkedList.add("2");
        linkedList.add("3");
        linkedList.add("4");


        Stack<String> stack = new Stack<>();
//        stack.push()
        for (String s : linkedList) {
            System.out.println(s);
            stack.push(s);
        }
       while (stack.size()>0){
           System.out.println(stack.pop());
       }


       List<String> list = new ArrayList<>();
       list.add("a");
       list.add("b");
       list.add("c");
       list.add("d");
       for (String a : list){
           System.out.println(a);
           stack.push(a);
       }
        while (stack.size()>0){
            System.out.println(stack.pop());
        }
    }

}
